summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/citra/citra_emu/features/settings/model/SettingSection.java
blob: 0a291aa6bb7a6a37f381cda7b14e8d90b6c6d989 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package org.citra.citra_emu.features.settings.model;

import java.util.HashMap;

/**
 * A semantically-related group of Settings objects. These Settings are
 * internally stored as a HashMap.
 */
public final class SettingSection {
    private String mName;

    private HashMap<String, Setting> mSettings = new HashMap<>();

    /**
     * Create a new SettingSection with no Settings in it.
     *
     * @param name The header of this section; e.g. [Core] or [Enhancements] without the brackets.
     */
    public SettingSection(String name) {
        mName = name;
    }

    public String getName() {
        return mName;
    }

    /**
     * Convenience method; inserts a value directly into the backing HashMap.
     *
     * @param setting The Setting to be inserted.
     */
    public void putSetting(Setting setting) {
        mSettings.put(setting.getKey(), setting);
    }

    /**
     * Convenience method; gets a value directly from the backing HashMap.
     *
     * @param key Used to retrieve the Setting.
     * @return A Setting object (you should probably cast this before using)
     */
    public Setting getSetting(String key) {
        return mSettings.get(key);
    }

    public HashMap<String, Setting> getSettings() {
        return mSettings;
    }

    public void mergeSection(SettingSection settingSection) {
        for (Setting setting : settingSection.mSettings.values()) {
            putSetting(setting);
        }
    }
}